# Установка cmfa (Complex of modules file analyzer)

Этот документ содержит подробные инструкции по установке зависимостей и сборке cmfa (Complex of modules file analyzer) на различных системах.

## Требования

- Компилятор GCC (`gcc`).
- Утилита `make`.
- Библиотеки: `libmagic`, `uchardet`, `libarchive`, `libavformat`, `libavcodec`, `libavutil`, `libexif`.
- Утилита `pkgconf` (или `pkg-config`) для управления зависимостями.

## Установка зависимостей

### Ubuntu/Debian

1. Обновите список пакетов:

```bash
sudo apt update
```

2. Установите зависимости:

```bash
sudo apt install libmagic-dev libuchardet-dev libarchive-dev libavformat-dev libavcodec-dev libavutil-dev libexif-dev pkgconf
```

3. Проверьте установленные версии:

```bash
pkg-config --modversion libmagic uchardet libarchive libavformat libavcodec libavutil libexif
```

Ожидаемый вывод:

```
5.41
0.0.7
3.6.0
58.76.100
58.134.100
56.70.100
0.6.24
```

### Fedora

1. Установите зависимости:

```bash
sudo dnf install libmagic-devel uchardet-devel libarchive-devel ffmpeg-devel libexif-devel pkgconf
```

2. Проверьте версии:

```bash
pkg-config --modversion libmagic uchardet libarchive libavformat libavcodec libavutil libexif
```

### macOS (с Homebrew)

1. Установите Homebrew, если он не установлен:

```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

2. Установите зависимости:

```bash
brew install libmagic uchardet libarchive ffmpeg libexif pkg-config
```

3. Проверьте версии:

```bash
pkg-config --modversion libmagic uchardet libarchive libavformat libavcodec libavutil libexif
```

## Сборка

1. Клонируйте репозиторий (если используете GitHub):

```bash
git clone https://github.com/<your-repo>/cmfa.git
cd cmfa
```

2. Выполните сборку:

```bash
make
```

3. Проверьте, что исполняемый файл создан:

```bash
ls -l cmfa
```

## Устранение неполадок

- **Ошибка:** `pkg-config` **не найден**: Установите `pkgconf`:

  ```bash
  sudo apt install pkgconf
  ```

- **Ошибка: библиотека не найдена**: Убедитесь, что все пакеты установлены. Проверьте:

  ```bash
  pkg-config --exists libmagic uchardet libarchive libavformat libavcodec libavutil libexif
  ```
  Если возвращается ошибка, установите недостающие пакеты.

- **Ошибки компиляции**: Проверьте, что версии библиотек соответствуют указанным.

## Очистка
Для удаления скомпилированных файлов:

```bash
make clean
```
## Для установки в систему Linux OS Ubuntu
sudo mv cmfa /usr/local/bin/
